#!/bin/sh

ib_count=0
if [ ! -d /sys/class/infiniband/ ] ; then
	exit 1
fi
devices=$(ls /sys/class/infiniband/)

echo +-------+-------+-------+-------+
echo -en '\033[1m'
echo -e "|Device\t|Port\t|Index\t|Pkey\t|"
tput sgr0
echo +-------+-------+-------+-------+
for d in $devices ; do
	ports=$(ls /sys/class/infiniband/$d/ports/)
	for p in $ports ; do
		pkeys=$(ls /sys/class/infiniband/$d/ports/$p/pkeys/)
		for k in $pkeys ; do  
			pkey=$(cat /sys/class/infiniband/$d/ports/$p/pkeys/$k)
			if [ $pkey != 0x0000 ] ; then
				echo -e "|$d\t|$p\t|$k\t|$pkey\t|"
				echo +-------+-------+-------+-------+
			fi
		done
	done
done
